//创建用户相关的小仓库
import {defineStore} from 'pinia'
//引入接口
import { reqLogin } from '../../api/user'
//引入数据类型
import type { loginForm,loginResponseData } from '../../api/user/type'
import type { UserState } from './types/type'
import { SET_TOKEN,GET_TOKEN } from '../../utils/token'
import {constantRoute} from '../../router/router'
//创建用户小仓库
let useUserStore=defineStore('User',{
    state:():UserState=>{
        return {
            token:GET_TOKEN(),
            menuRoutes:constantRoute//仓库存储生成菜单需要的数据（路由）
        }
    },
    //异步|逻辑的地方
    actions:{
        //用户登录的方法
        async userLogin(data:loginForm){
            let result:loginResponseData=await reqLogin(data)
            //登录成功200-》token
            // 登录失败：错误信息
            if(result.code == 200){
                //存储token
                this.token=(result.data.token as string)
                // 本地存储
                SET_TOKEN((result.data.token as string))
                return 'ok'
            }else{
                return Promise.reject(new Error(result.data.message))
            }
        }
    },
    getters:{

    }
})
export default useUserStore;
